package educar.correccion;

import java.sql.ResultSet;
import java.sql.SQLException;

import java.sql.PreparedStatement;
import educar.db.*;

public class CorreccionController {
	private static JPA jpa = new JPA();

	public static boolean existe (String codigo) {
		try {
			Correccion doc = getCorreccion(codigo);
			return true;
		} catch (CorreccionNoEncontrada ex) {
			return false;
		}
	}
	
	/**
	 * Este metodo nos permite agregar agregar un 
	 * nuevo registro en la tabla correccion.
	 * @param correccion
	 */
	public static void save(Correccion correccion) {
		String[] columns = { "dni_docente", "calificacion", "resolucion_cod"};
		PreparedStatement stm = jpa.newRecord(DbConnection.bd+".correccion", columns);

		try {
			stm.setString(1, correccion.getDniDocente());
			stm.setString(2, correccion.getCalificacion());
			stm.setString(3, correccion.getResolucionCod().toString());
		} catch (SQLException e) {
			e.printStackTrace();
		}
		jpa.create(stm);
		
	}
	
	/**
	 * Retorna una instancia de la clase correccion obteniada de la base de datos.
	 * @param codigo
	 * @return
	 * @throws CorreccionNoEncontrada
	 */
	public static Correccion getCorreccion (String codigo) throws CorreccionNoEncontrada {
		ResultSet rs = null;
		Correccion correccion= null;
			rs = jpa.getByField("correccion", "codigo", codigo);
			
		try {
			if (rs.next()) {
				correccion = new Correccion (Integer.parseInt(rs.getString(1)), rs.getString(2), rs.getString(3),rs.getString(4));
			} else {
					throw new CorreccionNoEncontrada();
				}
			} catch (SQLException e) {
				e.printStackTrace();
		}

		return correccion;
	}
	
	
}

